﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Ferreteria.Forms.GestionClientes
{
    public partial class frmDetallePago : Form
    {
        public frmDetallePago(int PagoNro)
        {
            InitializeComponent();

            DisancoEntities context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);

            var listaPagos = context.Pagos.Where(p => p.pago_nro == PagoNro);

            if (listaPagos.Count() > 0)
            {
                Pagos primerPago = listaPagos.First();

                decimal monto = listaPagos.Sum(p => p.pago_monto);
                string pagoTipo = primerPago.pago_tipo;
                
                txbChequeMonto.Text = monto.ToString("$ 0.00");
                txbFormaPago.Text = pagoTipo;

                if (pagoTipo == Clases.FormasDePago.Cheque)
                {
                    string pagoChequeNro = primerPago.pago_cheque_nro;
                    string pagoChequeBanco = primerPago.pago_cheque_banco;
                    string pagoChequeVencimiento = primerPago.pago_cheque_vencimiento.Value.ToShortDateString();

                    txbChequeVencimiento.Text = pagoChequeVencimiento;
                    txbChequeBanco.Text = pagoChequeBanco;
                    txbChequeNro.Text = pagoChequeNro;

                    gbDetalleCheque.Enabled = true;
                }

                foreach (var pago in listaPagos)
                {
                    Cuentas cuenta = pago.Cuentas.ElementAt(0);

                    if (cuenta.Ventas.Count != 0)
                    {
                        Ventas venta = cuenta.Ventas.First();
                        int i = dgvComprasRealizadas.Rows.Add();

                        dgvComprasRealizadas.Rows[i].Cells["venta_id"].Value = venta.id_venta;
                        dgvComprasRealizadas.Rows[i].Cells["venta_fecha"].Value = venta.venta_fecha.ToShortDateString();
                        dgvComprasRealizadas.Rows[i].Cells["venta_hora"].Value = venta.venta_fecha.ToShortTimeString();
                        dgvComprasRealizadas.Rows[i].Cells["venta_nro_inicio"].Value = venta.venta_nro_inicio;
                        dgvComprasRealizadas.Rows[i].Cells["venta_tipo_comprobante"].Value = venta.venta_tipo_comprobante;
                        dgvComprasRealizadas.Rows[i].Cells["venta_monto"].Value = venta.venta_monto;
                        dgvComprasRealizadas.Rows[i].Cells["pagado"].Value = pago.pago_monto;
                    }
                    else
                    {
                        if (cuenta.VentasAdicionales.Count != 0)
                        {
                            VentasAdicionales ventaAd = cuenta.VentasAdicionales.First();
                            int i = dgvComprasRealizadas.Rows.Add();

                            dgvComprasRealizadas.Rows[i].Cells["venta_id"].Value = ventaAd.va_id;
                            dgvComprasRealizadas.Rows[i].Cells["venta_fecha"].Value = ventaAd.va_fecha;
                            dgvComprasRealizadas.Rows[i].Cells["venta_hora"].Value = ventaAd.va_fecha;
                            dgvComprasRealizadas.Rows[i].Cells["venta_nro_inicio"].Value = ventaAd.va_nro_comp_ini;
                            dgvComprasRealizadas.Rows[i].Cells["venta_tipo_comprobante"].Value = "X";
                            dgvComprasRealizadas.Rows[i].Cells["venta_monto"].Value = ventaAd.va_monto;
                            dgvComprasRealizadas.Rows[i].Cells["pagado"].Value = pago.pago_monto;
                        }
                    }
                }
            }
        }
    }
}
